Merged
Conversation
1 task
They are not really related to eval.yml.
This allows running the lib-tests locally in exactly the same way that they are run in CI: nix-build ci -A lib-tests
The NixOS manual can now be built locally the same way as in CI with: nix-build ci -A manual-nixos
The Nixpkgs manual can now be built locally the same way as in CI with: nix-build ci -A manual-nixpkgs -A manual-nixpkgs-tests
The dev shell can now be built locally the same way as in CI with: nix-build ci -A shell
This was referenced May 10, 2025
Mic92
reviewed
May 11, 2025
13 tasks
The nix-parse workflow can now be run locally the same way as in CI. To do this, the CI's workflow was slightly adjusted. Instead of testing only the changed files, we're now testing all files in the repository. This is possible in two ways: 1. By calling nix-instantiate once with all files as arguments. This will be rather fast, but only the first error is shown before it errors out. 2. By calling nix-instantiate once for each file. This will be much slower, but has the advantage that we see all errors at once. To avoid running the long variant every time, we first do a quick check with the fast version. If that fails, we run the slower one to report the errors. This gives us the best of both.
Path interpolation syntax is not supported in the minimum nix version.
This adds the minimum nix version and the latest lix version to the matrix of parse checks. Especially the minimum nix version is relevant, because parsing routinely breaks because of introduction of newer syntax. Adding lix just completes the picture.
Contributor
|
Successfully created backport PR for |
1 task
Contributor
Author
|
Hm, the calls in the workflows were not correct, yet, apparently. Some CI jobs are failing now. Will fix ASAP. |
13 tasks
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The goal is to be able to run
nix-build cilocally to run (almost) all CI jobs. For contributors, but also for those who work on CI to easily test most of the CI code.This first step already gets us a good step towards that goal. With the exception of the
nixpks-vetworkflow, which needs more preparation (starting in #405853), the main workflows can now be run with 3 commands:nix-shell --run treefmtrunsnixfmt,keep-sortedandeditorconfig-checker. This was introduced in earlier PRs.nix-build ciruns thecheck-shell,lib-tests,manual-nixos,manual-nixpkgs,nix-parsejobs just like in CI, but only for the local system, while CI runs some of them on different systems as well.nix-build ci -A eval.fullruns the eval jobs, as documented in theci/eval/README.mdfile.I think it doesn't make sense to run the full eval by default when doing
nix-build ci, because most people would probably rather let CI do the big eval (?). The same goes fornix-build ci -A fmt.check, which runs the formatters - but I think it's more convenient to run the formatters viatreefmt, which can benefit from caching.While working on the parse check, I moved the
nix-instantiatecall inside the nix sandbox, thus allowing us to run the minimum nix version without security concerns, as discussed in #398122 (comment). While at it, we also parse withlixto make sure the many contributors using that will not suddenly get parse errors eventually (shouldn't happen, but you never know).Things done
Ran
nix-build ci --argstr system <system>for the below platforms.Add a 👍 reaction to pull requests you find important.